package banco.cmv;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import banco.Banco;
import dominio.cmv.Contabilidade;
import dominio.cmv.Informativo_Fiscal;
import fachada.cmv.FachadaContabilidade;

public class ContabilidadeDAO implements FachadaContabilidade {

	@SuppressWarnings("finally")
	public void insertContabilidade(Contabilidade cont, Informativo_Fiscal info) throws ClassNotFoundException, IOException {
	        
	        Connection conn = null;
	        PreparedStatement stmt = null;
	        ResultSet rs = null;
	        
	        try {
	            conn = Banco.getConexaoEXTRATOPAES();
	            stmt = conn.prepareStatement("insert into contabilidade_cmv values (?, ?, ?, ?, ?, ?, ?)");
	            stmt.setFloat(1, cont.getRes_antes_cmv());
	            stmt.setFloat(2, cont.getEstoque_final_icms());
	            stmt.setFloat(3, cont.getCusto());
	            stmt.setFloat(4, cont.getCusto_sobre_total_faturamento());
	            stmt.setFloat(5, cont.getRes_apos_cmv());
	            stmt.setFloat(6, cont.getIcms_calculo_est_contabil());
	            stmt.setInt(7, info.getId());
	            stmt.executeUpdate();
	        }
	        catch (SQLException ex) {
	            ex.printStackTrace();
	        }
	        
	        catch (Exception e) {
	        	e.printStackTrace();
	        }
	        finally {
		        Banco.closeConexao(conn, rs, stmt);
	        }
	    }
	
	@SuppressWarnings("finally")
	public Contabilidade selectContabilidadeById(int id) throws ClassNotFoundException, IOException {
	    
	    Connection conn = null;
	    PreparedStatement stmt = null;
	    ResultSet rs = null;
	    Contabilidade cont = new Contabilidade();
	    
	    try {
	        conn = Banco.getConexaoEXTRATOPAES();
	        stmt = conn.prepareStatement("select * from contabilidade_cmv where id_res_info_fiscal = ?");
	        stmt.setInt(1, id);
	        rs = stmt.executeQuery();
	        while (rs.next()){
	            cont.setCusto(rs.getFloat("custo"));
	            cont.setCusto_sobre_total_faturamento(rs.getFloat("custo_sobre_total_faturamento"));
	            cont.setEstoque_final_icms(rs.getFloat("estoque_final_icms"));
	            cont.setIcms_calculo_est_contabil(rs.getFloat("icms_calculo_est_contabil"));
	            cont.setRes_antes_cmv(rs.getFloat("res_antes_cmv"));
	            cont.setRes_apos_cmv(rs.getFloat("res_apos_cmv"));
	        }
	    }
	    catch (SQLException ex) {
	        ex.printStackTrace();
	    }
	    finally {
	        Banco.closeConexao(conn, rs, stmt);
	        return cont;
	    }
	}
	
}